<?php


namespace XiaoGuai\DataStructure\Queue;


interface QueueInterface
{
    /**
     * 构造一个空队列
     * QueueInterface constructor.
     */
    public function __construct();

    /**
     * 队列元素是否为空
     * @return bool
     */
    public function isEmpty(): bool;

    /**
     * 队列元素长度
     * @return int
     */
    public function length(): int;

    /**
     * 队列顶部元素
     * @return mixed
     */
    public function top();

    /**
     * 入队
     * @param $element
     * @return bool
     */
    public function enqueue($element): bool;

    /**
     * 出队
     * @return mixed
     */
    public function dequeue();
}